package de.wittekind.bundesjugendspiele.dummy;

import java.io.IOException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;

import de.wittekind.bundesjugendspiele.server.interfaces.Discipline;
import de.wittekind.bundesjugendspiele.server.interfaces.Riege;
import de.wittekind.bundesjugendspiele.server.interfaces.Schueler;

public class DummyRiege extends UnicastRemoteObject implements Riege {
	
	String fuehrer;

	ArrayList<Schueler> schuelerList;
	ArrayList<Integer> schuelerIDs;
	
	public DummyRiege( ArrayList<Schueler> sList ) throws IOException {
		schuelerList = sList;
		schuelerIDs=new ArrayList<Integer>(schuelerList.size());
		for(Schueler s:schuelerList)
		{
			schuelerIDs.add(s.getID());
		}
		
	}
	
	@Override
	public Schueler getSchueler(int id) throws IOException {
		
		for(Schueler s:schuelerList)
		{
			if(s.getID()==id)
			{
				return s;
			}
		}
		return null;
	}

	@Override
	public void addSchueler(Schueler s) throws IOException {
		schuelerList.add(s);

	}

	@Override
	public void removeSchueler(int id) throws IOException {
		schuelerList.remove(id);

	}

	@Override
	public void setDiscipline(int id, Discipline d) {
		
	}

	@Override
	public int getSchuelerAmount() {
		return schuelerList.size();
	}

	@Override
	public int[] getSchuelerIDs() {

	    int[] schuelerAr = new int[schuelerIDs.size()];
	    for (int i=0; i < schuelerAr.length; i++)
	    {
	        schuelerAr[i] = schuelerIDs.get(i).intValue();
	    }
	    return schuelerAr;
	}

	@Override
	public String getRiegenFuehrer() throws IOException {
		// TODO Auto-generated method stub
		return fuehrer;
	}

	@Override
	public void setRiegenFuehrer(String nFuehrer) throws IOException {
		fuehrer = nFuehrer;
	}

	@Override
	public int newSchueler() throws IOException {
		int id = schuelerList.size() + 1;
		addSchueler(new DummySchueler(id));
		return id;
	}

	@Override
	public int getID() throws IOException {
		// TODO Auto-generated method stub
		return 0;
	}
	

}
